package in.lib.handler.dialogs;
import in.lib.Constants;
import in.lib.event.DeletePostDraftEvent;
import in.lib.event.NewPostDraftEvent;
import in.lib.event.NewPostEvent;
import in.lib.handler.base.DialogResponseHandler;
import in.lib.helper.BusHelper;
import in.lib.manager.CacheManager;
import in.model.DraftPost;
import in.rob.client.R;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
public class NewPostDialogResponseHandler extends DialogResponseHandler
{
public NewPostDialogResponseHandler(Context context, Intent failIntent, int sendNotificationId)
{
super(context, failIntent, sendNotificationId);
}
@Override public String getFailText()
{
return getContext().getString(R.string.post_fail);
}
@Override public void onFinish(boolean failed)
{
if (!failed)
{
BusHelper.getInstance().post(new NewPostEvent(getPost()));
if (getFailIntent().hasExtra(Constants.EXTRA_NEW_POST_DRAFT))
{
DraftPost post = DraftPost.deserialize(getFailIntent().getByteArrayExtra(Constants.EXTRA_NEW_POST_DRAFT));
BusHelper.getInstance().post(new DeletePostDraftEvent(post));
CacheManager.getInstance().removeFile(String.format(Constants.CACHE_DRAFT_POST, post.getSelectedAccountId(), post.getDate()));
}
PendingIntent contentIntent = PendingIntent.getActivity(getContext(), 0, new Intent(), PendingIntent.FLAG_CANCEL_CURRENT);
Notification n = new NotificationCompat.Builder(getContext())
.setContentIntent(contentIntent)
.setTicker(getContext().getString(R.string.post_success))
.setSmallIcon(R.drawable.notif)
.setWhen(System.currentTimeMillis())
.build();
getManager().notify(getNotificationId(), n);
getManager().cancel(getNotificationId());
}
else
{
if (getFailIntent().hasExtra(Constants.EXTRA_NEW_POST_DRAFT))
{
DraftPost post = DraftPost.deserialize(getFailIntent().getByteArrayExtra(Constants.EXTRA_NEW_POST_DRAFT));
BusHelper.getInstance().post(new NewPostDraftEvent(post));
}
}
super.onFinish(failed);
}
}